﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.ServiceModel.Channels;
using System.ComponentModel;
using PUBCLUB_2014_VISUAL_STUDIO_PRO_2010.EstabelecimentoWS;
using PUBCLUB_2014_VISUAL_STUDIO_PRO_2010.AvaliacaoWs;
using PUBCLUB_2014_VISUAL_STUDIO_PRO_2010.ClienteWs;


namespace PUBCLUB_2014_VISUAL_STUDIO_PRO_2010.GUI
{
    public partial class EstabelecimentoVerAvaliacoesClientes : System.Web.UI.Page
    {
        ObjetoEstabelecimento estabelecimento;       

        PubClub_Estabelecimento_WS webServiceEstabelecimento = new PubClub_Estabelecimento_WS();
        PubClub_Cliente_WS webServiceCliente = new PubClub_Cliente_WS();
        PubClub_Avaliacao_WS webServiceAvaliacao = new PubClub_Avaliacao_WS();

        ObjetoAvaliacao[] listaAvaliacaoClientes;

        protected void Page_Load(object sender, EventArgs e)
        {
            if (Session["Estabelecimento"] == null)
            {
                Response.Redirect("Login.aspx?Logout=2");
            }
            else
            {
                estabelecimento = webServiceEstabelecimento.GetEstabelecimento(Convert.ToInt32(Session["Estabelecimento"]));
            }

            listaAvaliacaoClientes = webServiceAvaliacao.GetAvaliacoesByEstabelecimentoId(estabelecimento.EstabelecimentoId);

            TableHeaderRow linhaAvaliacao1 = new TableHeaderRow();

            Label textoCliente = new Label();
            TableHeaderCell celulaCliente = new TableHeaderCell();

            Label textoNivelAvaliacao = new Label();
            TableHeaderCell celulaNivelAvaliacao = new TableHeaderCell();

            Label textoComentario = new Label();
            TableHeaderCell celulaComentario = new TableHeaderCell();

            textoCliente.Text = "Cliente";
            celulaCliente.Controls.Add(textoCliente);
            linhaAvaliacao1.Cells.Add(celulaCliente);

            textoNivelAvaliacao.Text = "Avaliacação";
            celulaNivelAvaliacao.Controls.Add(textoNivelAvaliacao);
            linhaAvaliacao1.Cells.Add(celulaNivelAvaliacao);

            textoComentario.Text = "Comentário";
            celulaComentario.Controls.Add(textoComentario);
            linhaAvaliacao1.Cells.Add(celulaComentario);

            tabelaMinhasAvaliacoes.Rows.Add(linhaAvaliacao1);

            if (listaAvaliacaoClientes.Count() == 0)
            {
                labelAviso.Text = "Seu estabelecimento ainda não foi avaliado por nenhum cliente.";
                labelAviso.Visible = true;

            }
            else
            {
                labelAviso.Visible = false;

                int i = 0;
                foreach (var item in listaAvaliacaoClientes)
                {
                    TableRow linhaAvaliacao2 = new TableRow();

                    Label textoCliente2 = new Label();
                    TableCell celulaCliente2 = new TableCell();

                    Label textoNivelAvaliacao2 = new Label();
                    TableCell celulaNivelAvaliacao2 = new TableCell();

                    Label textoComentario2 = new Label();
                    TableCell celulaComentario2 = new TableCell();

                    if (i % 2 != 0)
                    {
                        linhaAvaliacao2.CssClass = "odd";
                    }

                    i++;

                    textoCliente2.Text = webServiceCliente.GetCliente(item.ClienteId).Nome;
                    celulaCliente2.Controls.Add(textoCliente2);

                    linhaAvaliacao2.Cells.Add(celulaCliente2);

                    switch (Convert.ToInt32(item.Nota))
                    {
                        case 1:
                            textoNivelAvaliacao2.Text = "Péssimo";
                            break;
                        case 2:
                            textoNivelAvaliacao2.Text = "Ruim";
                            break;
                        case 3:
                            textoNivelAvaliacao2.Text = "Bom";
                            break;
                        case 4:
                            textoNivelAvaliacao2.Text = "Ótimo";
                            break;
                        case 5:
                            textoNivelAvaliacao2.Text = "Excelente";
                            break;
                    }

                    celulaNivelAvaliacao2.Controls.Add(textoNivelAvaliacao2);
                    linhaAvaliacao2.Cells.Add(celulaNivelAvaliacao2);

                    textoComentario2.Text = item.Comentario;
                    celulaComentario2.Controls.Add(textoComentario2);
                    linhaAvaliacao2.Cells.Add(celulaComentario2);

                  

                    tabelaMinhasAvaliacoes.Rows.Add(linhaAvaliacao2);
                    
                }
                labelCount.Text = "Total de avaliações:" + listaAvaliacaoClientes.Count();
            }

        }
    }
}